home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / hardware / a1200fdf.lha / A1200FDfix / A1200FDtest.s < prev    next >
Text File  |  1996-02-09  |  13KB  |  543 lines

  1. ExecBase           = $4
  2. Disable            = -120
  3. Enable             = -126
  4. Forbid             = -132
  5. Insert             = -234
  6. Remove             = -252
  7. FindTask           = -294
  8. Wait               = -318
  9. GetMsg             = -372
  10. ReplyMsg           = -378
  11. WaitPort           = -384
  12. CloseLibrary       = -414
  13. OpenLibrary        = -552
  14. CloseWindow        = -72
  15. ModifyIDCMP        = -150
  16. IntuiTextLength    = -330
  17. LockPubScreen      = -510
  18. UnlockPubScreen    = -516
  19. EasyRequestArgs    = -588
  20. OpenWindowTagList  = -606
  21. CreateGadgetA      = -30
  22. FreeGadgets        = -36
  23. GT_SetGadgetAttrsA = -42
  24. GT_GetIMsg         = -72
  25. GT_ReplyIMsg       = -78
  26. GT_RefreshWindow   = -84
  27. CreateContext      = -114
  28. GetVisualInfoA     = -126
  29. FreeVisualInfo     = -132
  30. pr_MsgPort         = 92
  31. pr_CLI             = 172
  32. UserPort           = 86
  33. Class              = 20
  34. IAddress           = 28
  35. Font               = 40
  36. Width              = 8
  37. Height             = 10
  38. GadgetID           = 38
  39. IntrList           = 364
  40. TaskReady          = 406
  41. tc_State           = 15
  42. TAG_USER           = $80000000
  43. TAG_END            = 0
  44. WA_Dummy           = TAG_USER+99
  45. WA_IDCMP           = WA_Dummy+$07
  46. WA_Gadgets         = WA_Dummy+$09
  47. WA_Title           = WA_Dummy+$0B
  48. WA_InnerWidth      = WA_Dummy+$13
  49. WA_InnerHeight     = WA_Dummy+$14
  50. WA_DragBar         = WA_Dummy+$1F
  51. WA_DepthGadget     = WA_Dummy+$20
  52. WA_CloseGadget     = WA_Dummy+$21
  53. WA_Activate        = WA_Dummy+$26
  54. WA_WBenchWindow    = WA_Dummy+$28
  55. WA_GimmeZeroZero   = WA_Dummy+$2E
  56. IDCMP_CLOSEWINDOW  = $00000200
  57. IDCMP_INTUITICKS   = $00400000
  58. IDCMP_GADGETUP     = $00000040
  59. ta_YSize           = 4
  60. ITextFont          = 8
  61. IText              = 12
  62. ng_LeftEdge        = 0
  63. ng_Width           = 4
  64. ng_Height          = 6
  65. ng_GadgetText      = 8
  66. ng_TextAttr        = 12
  67. ng_VisualInfo      = 22
  68. BUTTON_KIND        = 1
  69. TEXT_KIND          = 13
  70. PLACETEXT_IN       = $0010
  71. GT_TagBase         = TAG_USER+$80000
  72. GTTX_Border        = GT_TagBase+57
  73. GTTX_Text          = GT_TagBase+11
  74. GA_Dummy           = TAG_USER+$30000
  75. GA_Disabled        = GA_Dummy+$000E
  76.  
  77. Start:
  78.   lea     InitialSP(pc),a0
  79.   move.l  sp,(a0)
  80.   movea.l ExecBase,a6
  81.   suba.l  a1,a1
  82.   jsr     FindTask(a6)
  83.   movea.l d0,a4
  84.   tst.l   pr_CLI(a4)
  85.   bne.s   OpenAll
  86.   lea     pr_MsgPort(a4),a0
  87.   jsr     WaitPort(a6)
  88.   lea     pr_MsgPort(a4),a0
  89.   jsr     GetMsg(a6)
  90.   lea     WBenchMsg(pc),a0
  91.   move.l  d0,(a0)
  92.  
  93. OpenAll:
  94.   lea     IntuitionName(pc),a1
  95.   moveq   #36,d0
  96.   jsr     OpenLibrary(a6)
  97.   lea     IntuitionBase(pc),a0
  98.   move.l  d0,(a0)
  99.   beq     ErrorOpenIntuition
  100.   lea     GadToolsName(pc),a1
  101.   moveq   #36,d0
  102.   jsr     OpenLibrary(a6)
  103.   lea     GadToolsBase(pc),a0
  104.   move.l  d0,(a0)
  105.   beq     ErrorOpenGadTools
  106.   lea     TrackDiskName(pc),a1
  107.   jsr     FindTask(a6)
  108.   lea     TrackDiskTask(pc),a0
  109.   move.l  d0,(a0)
  110.   beq     ErrorFindTrackDisk
  111.   movea.l IntuitionBase(pc),a6
  112.   suba.l  a0,a0
  113.   jsr     LockPubScreen(a6)
  114.   lea     PubScrPtr(pc),a0
  115.   move.l  d0,(a0)
  116.   beq     ErrorLockPubScr
  117.   lea     IntText(pc),a0
  118.   move.l  d0,a1
  119.   move.l  Font(a1),ITextFont(a0)
  120.   move.l  #ButtonGadgText,IText(a0)
  121.   jsr     IntuiTextLength(a6)
  122.   lea     ButtonGadgTextLength(pc),a0
  123.   add.w   d0,(a0)
  124.   lea     IntText(pc),a0
  125.   move.l  #TextGadgText3,IText(a0)
  126.   jsr     IntuiTextLength(a6)
  127.   lea     TextGadgTextLength(pc),a0
  128.   add.w   d0,(a0)
  129.   movea.l GadToolsBase(pc),a6
  130.   movea.l PubScrPtr(pc),a0
  131.   suba.l  a1,a1
  132.   jsr     GetVisualInfoA(a6)
  133.   lea     VInfo(pc),a0
  134.   move.l  d0,(a0)
  135.   beq     ErrorGetVInfo
  136.   lea     GadgContext(pc),a0
  137.   jsr     CreateContext(a6)
  138.   lea     GadgContext(pc),a0
  139.   move.l  d0,(a0)
  140.   beq     ErrorCreateContext
  141.   lea     ButtonNewGadg(pc),a1
  142.   move.l  PubScrPtr(pc),a0
  143.   move.l  Font(a0),ng_TextAttr(a1)
  144.   move.l  ng_TextAttr(a1),a0
  145.   move.w  ta_YSize(a0),d0
  146.   addq.w  #6,d0
  147.   move.w  d0,ng_Height(a1)
  148.   move.l  VInfo(pc),ng_VisualInfo(a1)
  149.   move.w  ButtonGadgTextLength(pc),ng_Width(a1)
  150.   move.l  #BUTTON_KIND,d0
  151.   move.l  GadgContext(pc),a0
  152.   suba.l  a2,a2
  153.   jsr     CreateGadgetA(a6)
  154.   lea     ButtonGadg(pc),a0
  155.   move.l  d0,(a0)
  156.   beq     ErrorCreateButtonGadg
  157.   move.l  d0,a0
  158.   lea     TextNewGadg(pc),a1
  159.   lea     ButtonNewGadg(pc),a2
  160.   move.w  Width(a0),d0
  161.   add.w   d0,ng_LeftEdge(a1)
  162.   move.l  ng_TextAttr(a2),ng_TextAttr(a1)
  163.   move.w  ng_Height(a2),ng_Height(a1)
  164.   move.l  ng_VisualInfo(a2),ng_VisualInfo(a1)
  165.   move.w  TextGadgTextLength(pc),ng_Width(a1)
  166.   move.l  #TEXT_KIND,d0
  167.   lea     TextGadgTagList(pc),a2
  168.   jsr     CreateGadgetA(a6)
  169.   lea     TextGadg(pc),a0
  170.   move.l  d0,(a0)
  171.   beq     ErrorCreateTextGadg
  172.   movea.l IntuitionBase(pc),a6
  173.   lea     WinTagList(pc),a1
  174.   move.l  GadgContext(pc),4(a1)
  175.   move.l  ButtonGadg(pc),a0
  176.   moveq   #30,d0
  177.   add.w   Width(a0),d0
  178.   move.l  TextGadg(pc),a0
  179.   add.w   Width(a0),d0
  180.   move.l  d0,12(a1)
  181.   moveq   #20,d0
  182.   add.w   Height(a0),d0
  183.   move.l  d0,20(a1)
  184.   suba.l  a0,a0
  185.   jsr     OpenWindowTagList(a6)
  186.   lea     WinPtr(pc),a0
  187.   move.l  d0,(a0)
  188.   beq     ErrorOpenWin
  189.   movea.l GadToolsBase(pc),a6
  190.   movea.l d0,a0
  191.   suba.l  a1,a1
  192.   jsr     GT_RefreshWindow(a6)
  193.  
  194. Main:
  195.   movea.l ExecBase,a6
  196.   moveq   #-1,d0
  197.   jsr     Wait(a6)
  198.   tst.l   d0
  199.   beq.s   Main
  200. CheckMsg:
  201.   movea.l GadToolsBase(pc),a6
  202.   movea.l WinPtr(pc),a0
  203.   movea.l UserPort(a0),a0
  204.   jsr     GT_GetIMsg(a6)
  205.   tst.l   d0
  206.   beq.s   Main
  207.   movea.l d0,a1
  208.   move.l  Class(a1),d2
  209.   move.l  IAddress(a1),a2
  210.   jsr     GT_ReplyIMsg(a6)
  211. CheckCloseWindow:
  212.   cmp.l   #IDCMP_CLOSEWINDOW,d2
  213.   bne.s   CheckIntuiTicks
  214.   bra     CloseAll
  215. CheckIntuiTicks:
  216.   cmp.l   #IDCMP_INTUITICKS,d2
  217.   bne     CheckGadgetUp
  218.   lea     Checking(pc),a0
  219.   tst.b   (a0)
  220.   beq     CheckMsg
  221.   lea     DelayTime(pc),a0
  222.   addq.w  #1,(a0)
  223.   cmp.w   #100,(a0)
  224.   beq     ErrorReadyKeepsInactive
  225.   btst    #5,$BFE001
  226.   bne     CheckMsg
  227.   moveq   #0,d0
  228.   move.w  (a0),d0
  229.   divu    #10,d0
  230.   lea     TextGadgText31(pc),a0
  231.   move.b  d0,(a0)
  232.   add.b   #'0',(a0)
  233.   swap    d0
  234.   lea     TextGadgText32(pc),a0
  235.   move.b  d0,(a0)
  236.   add.b   #'0',(a0)
  237.   movea.l TextGadg(pc),a0
  238.   movea.l WinPtr(pc),a1
  239.   suba.l  a2,a2
  240.   lea     TextGadgTagList3(pc),a3
  241.   jsr     GT_SetGadgetAttrsA(a6)
  242. TurnMotorOff:
  243.   movea.l ButtonGadg(pc),a0
  244.   movea.l WinPtr(pc),a1
  245.   lea     ButtonGadgTagList1(pc),a3
  246.   jsr     GT_SetGadgetAttrsA(a6)
  247.   lea     Checking(pc),a0
  248.   clr.b   (a0)
  249.   movea.l IntuitionBase(pc),a6
  250.   movea.l WinPtr(pc),a0
  251.   move.l  #IDCMP_CLOSEWINDOW|IDCMP_INTUITICKS|IDCMP_GADGETUP,d0
  252.   jsr     ModifyIDCMP(a6)
  253.   lea     DelayTime(pc),a0
  254.   clr.w   (a0)
  255.   move.b  #$FF,$BFD100
  256.   nop
  257.   nop
  258.   move.b  #$F7,$BFD100
  259.   nop
  260.   nop
  261.   move.b  BFD100(pc),$BFD100
  262.   movea.l ExecBase,a6
  263.   jsr     Disable(a6)
  264.   movea.l TrackDiskTask(pc),a1
  265.   jsr     Remove(a6)
  266.   lea     TaskReady(a6),a0
  267.   movea.l TrackDiskTask(pc),a1
  268.   suba.l  a2,a2
  269.   jsr     Insert(a6)
  270.   movea.l TrackDiskTask(pc),a1
  271.   move.b  #3,tc_State(a1)
  272.   jsr     Enable(a6)
  273.   bra     CheckMsg
  274. CheckGadgetUp:
  275.   cmp.l   #IDCMP_GADGETUP,d2
  276.   bne     CheckMsg
  277.   move.w  GadgetID(a2),d3
  278.   bne     CheckMsg
  279.   movea.l a2,a0
  280.   movea.l WinPtr(pc),a1
  281.   suba.l  a2,a2
  282.   lea     ButtonGadgTagList2(pc),a3
  283.   jsr     GT_SetGadgetAttrsA(a6)
  284.   movea.l TextGadg(pc),a0
  285.   movea.l WinPtr(pc),a1
  286.   lea     TextGadgTagList2(pc),a3
  287.   jsr     GT_SetGadgetAttrsA(a6)
  288.   lea     Checking(pc),a0
  289.   move.b  #1,(a0)
  290.   movea.l IntuitionBase(pc),a6
  291.   movea.l WinPtr(pc),a0
  292.   move.l  #IDCMP_INTUITICKS|IDCMP_GADGETUP,d0
  293.   jsr     ModifyIDCMP(a6)
  294.   movea.l ExecBase,a6
  295.   jsr     Disable(a6)
  296.   movea.l TrackDiskTask(pc),a1
  297.   jsr     Remove(a6)
  298.   lea     IntrList(a6),a0
  299.   movea.l TrackDiskTask(pc),a1
  300.   suba.l  a2,a2
  301.   jsr     Insert(a6)
  302.   movea.l TrackDiskTask(pc),a1
  303.   move.b  #8,tc_State(a1)
  304.   jsr     Enable(a6)
  305.   lea     BFD100(pc),a0
  306.   move.b  $BFD100,(a0)
  307.   nop
  308.   nop
  309.   move.b  #$7F,$BFD100
  310.   nop
  311.   nop
  312.   move.b  #$77,$BFD100
  313.   bra     CheckMsg
  314.  
  315. CloseAll:
  316.   movea.l IntuitionBase(pc),a6
  317.   movea.l WinPtr(pc),a0
  318.   jsr     CloseWindow(a6)
  319. FreeGadgs:
  320.   movea.l GadToolsBase(pc),a6
  321.   movea.l GadgContext(pc),a0
  322.   jsr     FreeGadgets(a6)
  323. FreeVInfo:
  324.   movea.l GadToolsBase(pc),a6
  325.   movea.l VInfo(pc),a0
  326.   jsr     FreeVisualInfo(a6)
  327. UnlockPubScr:
  328.   movea.l IntuitionBase(pc),a6
  329.   suba.l  a0,a0
  330.   movea.l PubScrPtr(pc),a1
  331.   jsr     UnlockPubScreen(a6)
  332. CloseGadTools:
  333.   movea.l ExecBase,a6
  334.   movea.l GadToolsBase(pc),a1
  335.   jsr     CloseLibrary(a6)
  336. CloseIntuition:
  337.   movea.l ExecBase,a6
  338.   movea.l IntuitionBase(pc),a1
  339.   jsr     CloseLibrary(a6)
  340. Exit:
  341.   move.l  WBenchMsg(pc),d0
  342.   tst.l   d0
  343.   beq.s   ByeBye
  344.   movea.l ExecBase,a6
  345.   jsr     Forbid(a6)
  346.   movea.l WBenchMsg(pc),a1
  347.   jsr     ReplyMsg(a6)
  348. ByeBye:
  349.   movea.l InitialSP(pc),sp
  350.   moveq   #0,d0
  351.   rts
  352.  
  353. ErrorReadyKeepsInactive:
  354.   lea     ErrorReadyKeepsInactiveES(pc),a1
  355.   bsr     ErrorRequest
  356.   movea.l GadToolsBase(pc),a6
  357.   movea.l TextGadg(pc),a0
  358.   movea.l WinPtr(pc),a1
  359.   suba.l  a2,a2
  360.   lea     TextGadgTagList1(pc),a3
  361.   jsr     GT_SetGadgetAttrsA(a6)
  362.   bra     TurnMotorOff
  363. ErrorOpenWin:
  364.   lea     ErrorOpenWinES(pc),a1
  365.   bsr     ErrorRequest
  366.   bra     FreeGadgs
  367. ErrorCreateTextGadg:
  368.   lea     ErrorCreateTextGadgES(pc),a1
  369.   bsr     ErrorRequest
  370.   bra     FreeGadgs
  371. ErrorCreateButtonGadg:
  372.   lea     ErrorCreateButtonGadgES(pc),a1
  373.   bsr     ErrorRequest
  374.   bra     FreeGadgs
  375. ErrorCreateContext:
  376.   lea     ErrorCreateContextES(pc),a1
  377.   bsr     ErrorRequest
  378.   bra     FreeVInfo
  379. ErrorGetVInfo:
  380.   lea     ErrorGetVInfoES(pc),a1
  381.   bsr     ErrorRequest
  382.   bra     UnlockPubScr
  383. ErrorLockPubScr:
  384.   lea     ErrorLockPubScrES(pc),a1
  385.   bsr     ErrorRequest
  386.   bra     CloseGadTools
  387. ErrorFindTrackDisk:
  388.   lea     ErrorFindTrackDiskES(pc),a1
  389.   bsr     ErrorRequest
  390.   bra     CloseGadTools
  391. ErrorOpenGadTools:
  392.   lea     ErrorOpenGadToolsES(pc),a1
  393.   bsr     ErrorRequest
  394.   bra     CloseIntuition
  395. ErrorOpenIntuition:
  396.   bra     Exit
  397.  
  398. ErrorRequest:
  399.   movea.l IntuitionBase(pc),a6
  400.   suba.l  a0,a0
  401.   suba.l  a2,a2
  402.   suba.l  a3,a3
  403.   jmp     EasyRequestArgs(a6)
  404.  
  405. VersionStr:
  406.   dc.b '$VER: A1200FDtest 1.0 (06.02.1996)',0
  407. A1200FDtestStr:
  408.   dc.b 'A1200FDtest',0
  409. IntuitionName:
  410.   dc.b 'intuition.library',0
  411. GadToolsName:
  412.   dc.b 'gadtools.library',0
  413. TrackDiskName:
  414.   dc.b 'trackdisk.device',0
  415. ButtonGadgText:
  416.   dc.b 'Start',0
  417. TextGadgText1:
  418.   dc.b 'written by Christian Sauer',0
  419. TextGadgText2:
  420.   dc.b 'Checking...',0
  421. TextGadgText3:
  422.   dc.b '_MTR0 v _SEL0 -> _RDY delay time: '
  423. TextGadgText31:
  424.   dc.b '0.'
  425. TextGadgText32:
  426.   dc.b '0 s',0
  427. ErrorGetVInfoText:
  428.   dc.b 'Unable to get visual-info!',0
  429. ErrorLockPubScrText:
  430.   dc.b 'Unable to lock public-screen!',0
  431. ErrorOpenGadToolsText:
  432.   dc.b 'Unable to open gadtools.library!',0
  433. ErrorCreateContextText:
  434.   dc.b 'Unable to create context!',0
  435. ErrorCreateButtonGadgText:
  436.   dc.b 'Unable to create button-gadget!',0
  437. ErrorCreateTextGadgText:
  438.   dc.b 'Unable to create text-gadget!',0
  439. ErrorOpenWinText:
  440.   dc.b 'Unable to open window!',0
  441. ErrorFindTrackDiskText:
  442.   dc.b 'Unable to find trackdisk.device!',0
  443. ErrorReadyKeepsInactiveText:
  444.   dc.b 'Ready-signal keeps inactive!',0
  445. OKStr:
  446.   dc.b 'OK',0
  447. Checking:
  448.   dc.b 0
  449. BFD100:
  450.   dc.b 0
  451.   even
  452. InitialSP:
  453.   dc.l 0
  454. WBenchMsg:
  455.   dc.l 0
  456. IntuitionBase:
  457.   dc.l 0
  458. GadToolsBase:
  459.   dc.l 0
  460. TrackDiskTask:
  461.   dc.l 0
  462. PubScrPtr:
  463.   dc.l 0
  464. VInfo:
  465.   dc.l 0
  466. GadgContext:
  467.   dc.l 0
  468. DelayTime:
  469.   dc.w 0
  470. ErrorGetVInfoES:
  471.   dc.l 20,0,A1200FDtestStr,ErrorGetVInfoText,OKStr
  472. ErrorLockPubScrES:
  473.   dc.l 20,0,A1200FDtestStr,ErrorLockPubScrText,OKStr
  474. ErrorOpenGadToolsES:
  475.   dc.l 20,0,A1200FDtestStr,ErrorOpenGadToolsText,OKStr
  476. ErrorCreateContextES:
  477.   dc.l 20,0,A1200FDtestStr,ErrorCreateContextText,OKStr
  478. ErrorCreateButtonGadgES:
  479.   dc.l 20,0,A1200FDtestStr,ErrorCreateButtonGadgText,OKStr
  480. ErrorCreateTextGadgES:
  481.   dc.l 20,0,A1200FDtestStr,ErrorCreateTextGadgText,OKStr
  482. ErrorOpenWinES:
  483.   dc.l 20,0,A1200FDtestStr,ErrorOpenWinText,OKStr
  484. ErrorFindTrackDiskES:
  485.   dc.l 20,0,A1200FDtestStr,ErrorFindTrackDiskText,OKStr
  486. ErrorReadyKeepsInactiveES:
  487.   dc.l 20,0,A1200FDtestStr,ErrorReadyKeepsInactiveText,OKStr
  488. ButtonNewGadg:
  489.   dc.w 10,10,0,0
  490.   dc.l ButtonGadgText,0
  491.   dc.w 0
  492.   dc.l PLACETEXT_IN,0,0
  493. ButtonGadgTagList1:
  494.   dc.l GA_Disabled,0
  495.   dc.l TAG_END,0
  496. ButtonGadgTagList2:
  497.   dc.l GA_Disabled,1
  498.   dc.l TAG_END,0
  499. TextNewGadg:
  500.   dc.w 20,10,0,0
  501.   dc.l 0,0
  502.   dc.w 1
  503.   dc.l 0,0,0
  504. TextGadgTagList:
  505.   dc.l GTTX_Border,1
  506. TextGadgTagList1:
  507.   dc.l GTTX_Text,TextGadgText1
  508.   dc.l TAG_END,0
  509. TextGadgTagList2:
  510.   dc.l GTTX_Text,TextGadgText2
  511.   dc.l TAG_END,0
  512. TextGadgTagList3:
  513.   dc.l GTTX_Text,TextGadgText3
  514.   dc.l TAG_END,0
  515. ButtonGadg:
  516.   dc.l 0
  517. TextGadg:
  518.   dc.l 0
  519. ButtonGadgTextLength:
  520.   dc.w 12
  521. TextGadgTextLength:
  522.   dc.w 12
  523. IntText:
  524.   dc.w 0,0,0,0
  525.   dc.l 0,0,0
  526. WinPtr:
  527.   dc.l 0
  528. WinTagList:
  529.   dc.l WA_Gadgets,0
  530.   dc.l WA_InnerWidth,0
  531.   dc.l WA_InnerHeight,0
  532.   dc.l WA_IDCMP,IDCMP_CLOSEWINDOW|IDCMP_INTUITICKS|IDCMP_GADGETUP
  533.   dc.l WA_Title,A1200FDtestStr
  534.   dc.l WA_DepthGadget,1
  535.   dc.l WA_CloseGadget,1
  536.   dc.l WA_DragBar,1
  537.   dc.l WA_Activate,1
  538.   dc.l WA_WBenchWindow,1
  539.   dc.l WA_GimmeZeroZero,1
  540.   dc.l TAG_END,0
  541.   end
  542.  
  543.